package com.tfjybj.itoo.teach.provider.facade;

import org.apache.dubbo.config.annotation.Service;
import com.github.pagehelper.PageInfo;
import com.tfjybj.itoo.teach.FacadeApi.ClassApi;
import com.tfjybj.itoo.teach.entity.ClassEntity;
import com.tfjybj.itoo.teach.model.ClassModel;
import com.tfjybj.itoo.teach.provider.service.ClassService;

import javax.annotation.Resource;
import java.util.List;

/**
 * Created by QZS on 2019/4/27.
 */
@Service
@org.springframework.stereotype.Service
public class ClassFacade implements ClassApi {
    @Resource
    ClassService classService;


    /**
     * 根据专业id查询班级信息集合
     * @param professionId
     * @return 该专业下所有班级
     * @author 杨燕梅
     * @since 2.0.0 2018-11-18 09:00:16
     */
    @Override
    public List<ClassModel> queryByProfessionId(String professionId) {
        return classService.queryByProfessionId(professionId);
    }

    /**
     * 查询所有Class
     * @return 所有班级集合
     * @since 2.0.0 2018-11-08 19:34:10
     */
    @Override
    public List<ClassEntity> queryAll(){
        return classService.queryAll();
    }

    /**
     * 添加
     *
     * @param classEntity ClassEntity
     * @return 添加的结果
     * @author 智雪艳
     * @since 2.0.0 2019-05-28 10:35:56
     */
    @Override
    public boolean create(ClassEntity classEntity) {
        return classService.save(classEntity);
    }

    /**
     * 修改
     *
     * @param classEntity ClassEntity
     * @return 修改后的结果
     * @author 智雪艳
     * @since 2.0.0 2019-05-28 10:35:56
     */
    @Override
    public boolean modify(ClassEntity classEntity) {
        return classService.updateById(classEntity);
    }

    /**
     * 删除
     *
     * @param id 主键id
     * @return ItooResult 是否删除成功
     * @author 智雪艳
     * @since 2.0.0 2019-05-28 10:35:56
     */
    @Override
    public boolean delete(String id) {
        return classService.removeById(id);
    }

    /**
     * 批量删除
     *
     * @param ids ids
     * @return ItooResult 批量删除是否成功结果
     * @author 智雪艳
     * @since 2.0.0 2019-05-28 10:35:56
     */
    @Override
    public boolean deleteByIds(List<String> ids) {
        return classService.removeByIds(ids);
    }

    /**
     * 根据id查找Class
     *
     * @param id 主键id
     * @author 智雪艳
     * @since 2.0.0 2019-05-28 10:35:56
     */
    @Override
    public ClassEntity findById(String id) {
        return classService.getById(id);
    }

    /**
     * 分页查询所有Class
     *
     * @param pageNo
     * @param pageSize
     * @author 智雪艳
     * @since 2.0.0 2019-05-28 10:35:56
     */
    @Override
    public PageInfo<ClassEntity> queryPageAll(Integer pageNo, Integer pageSize) {
        return classService.queryPageAll(pageNo,pageSize);
    }

    /**
     * 根据行政班名称模糊查询class
     *
     * @param name     行政班名称
     * @param pageNo   页码
     * @param pageSize 页数
     * @return 模糊查询的class
     * @author 智雪艳
     * @since 2.0.0 2019-05-28 10:35:56
     */
    @Override
    public PageInfo<ClassEntity> queryByLikeName(String name, Integer pageNo, Integer pageSize) {
        return classService.queryByLikeName(name,pageNo,pageSize);
    }

    /**
     * 根据professionId查找所有行政班信息
     *
     * @param professionId 专业id
     * @return classEntityList
     * @author 智雪艳
     * @since 2.0.0 2019-05-28 10:35:56
     */
    @Override
    public List<ClassEntity> findByProfessionId(String professionId) {
        return classService.findByProfessionId(professionId);
    }

    /**
     * 根据专业id查询在校班级以及人员
     *
     * @param majorId
     * @param maxSession
     * @param minSession
     * @param screenClassName
     * @return 班级以及班级人员信息
     * @author 智雪艳
     * @since 2.0.0 2019-05-28 10:35:56
     */
    @Override
    public List<ClassModel> querySchoolClass(String majorId,Object maxSession, Object minSession, String screenClassName) {
        return classService.querySchoolClass(majorId,maxSession,minSession,screenClassName);
    }
}
